一,定义
交叉熵(Cross Entropy)是Shannon信息论中一个重要概念,主要用于度量两个概率分布间的差异性信息。语言模型的性能通常用交叉熵和复杂度(perplexity)来衡量。交叉熵的意义是用该模型对文本识别的难度,或者从压缩的角度来看,每个词平均要用几个位来编码。复杂度的意义是用该模型表示这一文本平均的分支数,其倒数可视为每个词的平均概率。平滑是指对没观察到的N元组合赋予一个概率值,以保证词序列总能通过语言模型得到一个概率值。通常使用的平滑技术有图灵估计、删除插值平滑、Katz平滑和Kneser-Ney平滑。
二,推导
信息量
信息量来衡量一个事件的不确定性,一个事件发生的概率越大,不确定性越小,则其携带的信息量就越小。
设X是一个离散型随机变量,其取值为集合X=$x_0$,x1,…,xn ,则其概率分布函数为p(x)=Pr(X=x),x∈X,则定义事件X=$x_0$ 的信息量为:
当p(x0)=1时,该事件必定发生,其信息量为0.
熵
熵用来衡量一个系统的混乱程度,代表系统中信息量的总和;熵值越大,表明这个系统的不确定性就越大。
信息量是衡量某个事件的不确定性,而熵是衡量一个系统(所有事件)的不确定性。
熵的计算公式:
其中,p($x_i$)为事件X=$x_i$的概率,−log(p($x_i$))为事件X=$x_i$的信息量。
可以看出,熵是信息量的期望值,是一个随机变量(一个系统,事件所有可能性)不确定性的度量。熵值越大,随机变量的取值就越难确定,系统也就越不稳定;熵值越小,随机变量的取值也就越容易确定,系统越稳定。
相对熵
相对熵也称为KL散度(Kullback-Leibler divergence),表示同一个随机变量的两个不同分布间的距离。
设 p(x),q(x) 分别是 离散随机变量X的两个概率分布,则p对q的相对熵是:
相对熵是用来衡量同一个随机变量的两个不同分布之间的距离。在实际应用中,假如p(x)是目标真实的分布,而q(x)是预测得来的分布,为了让这两个分布尽可能的相同的,就需要最小化KL散度。
交叉熵
设 p(x),q(x) 分别是 离散随机变量X的两个概率分布,其中p(x)是目标分布,p和q的交叉熵可以看做是,使用分布q(x) 表示目标分布p(x)的困难程度:
将熵、相对熵以及交叉熵的公式放到一起,1,2,3。
通过上面三个公式就可以得到
在机器学习中,目标的分布p(x) 通常是训练数据的分布是固定,即是H(p) 是一个常量。这样两个分布的交叉熵H(p,q) 也就等价于最小化这两个分布的相对熵DKL(p∥q)。
设p(x) 是目标分布(训练数据的分布),我们的目标的就让训练得到的分布q(x)尽可能的接近p(x),这时候就可以最小化DKL(p∥q),等价于最小化交叉熵H(p,q)